feat(cluster): add --bundle / --override to drive PlatformBundle deploys#27
Merged
feat(cluster): add --bundle / --override to drive PlatformBundle deploys#27
Conversation
The forge POST /v1/cluster/bundle endpoint already exists but had no
CLI hook — engineers were stuck using curl. This wires it into the
familiar `cluster up` command:
grounds cluster up --bundle 0.4.0
grounds cluster up --bundle 0.4.0 --override ./overrides/me.yaml
grounds cluster up --override ./overrides/me.yaml # bundle from file
`--bundle` and `--override` imply profile=platform-bundle (the only
profile the endpoint supports), so combining them with `--profile` is
an error rather than a silent contradiction.
The override YAML is read lazily — its `bundle:` field is the default
ref, but `--bundle` on the command line wins. The `overrides:` map is
passed through verbatim; forge owns the per-component union schema
(image | gradle-local | enabled:false) and validates server-side.
Result rendering shows the resolved/succeeded/failed component
breakdown directly so engineers see immediately which charts didn't
land:
✔ active — bundle 0.4.0 — vcluster-lusu
components: 15 resolved, 14 succeeded, 1 failed
failed:
- paper-game: chart oci://...:0.1.0 not found
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
hbrombeer
added a commit
that referenced
this pull request
May 4, 2026
The self-hosted Linux runner that ci.yml + release.yml depend on has been offline / not picking up jobs since the last #29 push. Three release-creating push-events are queued behind it: the cluster up --bundle, devspace generate, and bundle list/show merges (PRs #27 + #28 + #29) → no v0.1.12 tag, no goreleaser run, no published binaries. Switch all self-hosted runs-on to ubuntu-latest so the queue drains and the new CLI surface ships. Public-repo Actions minutes on GitHub-hosted runners are free; the self-hosted setup can be reintroduced once it's healthy. Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Wires the existing forge `POST /v1/cluster/bundle` endpoint into `grounds cluster up` so engineers can drive a platform-test environment from the CLI instead of curl.
```sh
grounds cluster up --bundle 0.4.0
grounds cluster up --bundle 0.4.0 --override ./overrides/me.yaml
grounds cluster up --override ./overrides/me.yaml # bundle ref read from file
```
Why
The bundle endpoint shipped in forge weeks ago, the bundle repo and DevSpace templates exist, but there was no CLI command — Phase 5 of the platform-test rollout couldn't actually be exercised by an engineer without hand-crafting an HTTP request. This closes that gap.
Behaviour
Test plan
🤖 Generated with Claude Code